package com.atguigu.template;

/**
 * @program: design-patterns
 * @author: yangshen
 * @description: 抽象类，豆浆
 * @create: 2022-02-28 09:20
 **/
public abstract class SoyMilk {
    /**
     * 模板方法make,模板方法可以做成final，不让子类去覆盖
     */
    public final void make(){
        select();
        addCondiments();
        soak();
        beat();
    }

    void select(){
        System.out.println("第一步，选择新鲜的黄豆");
    }

    /**
     * 添加不同的配料, 抽象方法 子类具体实现
     */
    public abstract void addCondiments();

    void soak(){
        System.out.println("第三步，黄豆和配料浸泡，需要3个小时");
    }
    void beat(){
        System.out.println("第四步，黄豆和配料放到豆浆机打碎 ");
    }

}
